/*金额转换 */

import java.util.Scanner;

public class StringDemo9 {
    public static void main(String[] args) {
        // 1.键盘录入一个金额
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个金额");
        int money = sc.nextInt();
        while (true) {
            if (money >= 0 && money <= 9999999) {
                break;
            } else {
                System.out.println("金额无效");
            }
        }
        //定义一个变量来表示钱的大写
        String moneystr = "";
        //2.得到money中每一位数字，再转为大写
        while(true)
        {
            //从右往左获取数字，因为右侧是数据的个位
            int ge = money % 10;
            String capitalnumber = getCapitalNumber(ge);
            //把转换后的大写拼接到moneystr
            moneystr = getCapitalNumber(ge) + moneystr;//这里要注意顺序
            //除刚刚获取的数据
            money = money / 10;
            //如果每一位都获取了，则money记为0，跳出循环
            if (money == 0) {
                break;
            }

        }
        //3.在前面补0，补成七位
        int count = 7 - moneystr.length();
        for(i=0;i<=count;i++)
        {
            "零"+moneystr;
        }
        System.out.println(moneystr);
        //4.插入单位
        //定义一个单位表示单位
        String[] arr={'佰','拾','万','仟','佰','拾','元'};

        //遍历moneystr 依次得到，再把单位插入
       String result="";
       for(int i=0;i<moneystr.length();i++)
       {
       char c=moneystr.charAt(i);
       System.out.println(c);
       //打印一下单位
       result=result+c+arr[i];
       }
       //5.打印结果
       System.out.println(result);
    }

    // 定义一个方法把数字变大写中文
    public static String getCapitalNumber(int number) {
        // 定义数组，让数字大写与中文产生一个一一对应关系
        String[] arr = { '壹', '贰', '叁', '肆', '伍', '陆', '柒', '玐', '玖' };
        // 返回结果
        return arr[number];
    }
}